﻿using System;
using HighDiveEngine.Aggregates;
using HighDiveEngine.Model;

namespace HighDiveEngine.Resources
{
    public delegate void DelegateVoidInt(int number);
    public delegate void DelegateVoidNullableInt(int? contestId);
    public delegate void DelegateVoidString(string str);
    public delegate void DelegateVoidStringString(string str1, string str2);
    public delegate void DelegateVoidDoubleInt(double dbl, int i);
    public delegate void DelegateVoidStringInt(string str, int i);
    public delegate void DelegateVoidStringIntInt(string str, int i1, int i2);

    public delegate void DelegateVoidDateTime(DateTime dateTime);
    public delegate void DelegateVoidContest(Contest contest);
    public delegate Contest DelegateContestContest(Contest contest);

    public delegate void DelegateVoidBool(bool boolean);

    public delegate void DelegateNewJudge(
    string idnumber, string firstname, string lastname, string email, string club, string address, int judgenumber);

    public delegate void DelegateContestInformation(string name, string club, DateTime date, string city, string country
        );

    public delegate void DelegateVoidJudge(Judge judge);
    public delegate void DelegateVoidDiveScore(DiveScore score);
    public delegate void DelegateVoidDiveList(DiveList diveList);
    public delegate void DelegateVoidDive(Dive dive);

    public delegate void DelegateVoidDiveDouble(Dive dive, double score);
    public delegate void DelegateVoidStringStringInt(string str1, string str2, int i);

    public delegate void DelegateVoidDiveScoreDive(DiveScore score, Dive dive);

    public delegate DiveList DelegateDiveListInt(int i);

    public delegate void DelegateVoidDiveEventArgs(DiveEventArgs diveArgs);

    public delegate void DelegateVoidPersonEventArgsDiveEventArgsArray(DiverEventArgs personArgs, DiveEventArgs[] diveArgs);
    public delegate void DelegateVoidJudgeEventArgs(JudgeEventArgs judgeArgs);

    public delegate void DelegateVoidContestEventArgs(ContestArgs contestArgs);

    public delegate double DelegateDoubleStringInt(string str, int i);

    public delegate DiveList DelegateDiveListDiver(Diver diver);
    public delegate void DelegateVoidDiver(Diver diver);

    public delegate Diver DelegateDiverDiver(Diver diver);

    public delegate Judge DelegateJudgeInt(int number);
    public delegate Judge DelegateJudgeString(string str);


    public delegate void DelegateDiveEventArgs(DiveEventArgs diveEventArgs);

    public delegate void DelegateDiverEventArgs(DiverEventArgs diverEventArgs);

}
